# 实验结论，函数结束时实验并不会同时结束

# python运行过下是向下的，默认是单线程执行。
# 想在接受输入的同时倒计时，那就开多一个线程，一个线程一个任务。
import threading
import time

# 模拟一个时间窗口
window_size = 5 # 单位：秒

# 倒计时函数
def countdown():
    global window_size
    for i in range(window_size, 0, -1):
        print(f"\r剩余时间: {i} 秒", end="", flush=True)
        time.sleep(1)
    print("Function_count_down运行")
    # 倒计时结束，主线程会继续执行并结束，守护线程也会随之终止

# 获取用户输入的函数
def get_user_input():
    pass
    inputs = input("请输入3个特征值，用空格隔开：").split()
    print("Function_input运行结束")

# 创建并启动倒计时线程,threading对象的Thread类的实例:Thread是个类,接收一个target参数。
countdown_thread = threading.Thread(target=countdown) 
# 线程默认是关闭的，不会说你同时创了1000个线程他就马上帮你启动。(start()方法)
countdown_thread.start()

# 创建并启动用户输入线程，强制用户输入线程在倒计时线程结束后结束
input_thread = threading.Thread(target=get_user_input)
input_thread.daemon = True # 设置为守护线程(支线)，主线程结束时会自动终止
input_thread.start()

# 等待倒计时线程完成，再结束输入线程
countdown_thread.join()

# 定义sensor 去 sense 它input_thread running or not.
if input_thread.is_alive():
    print("input_tread还在运行")
else:
    print("input_tread已结束")
# 定义sensor 去 sense 它countdown_thread running or not.
if countdown_thread.is_alive():
    print("countdown_thread还在运行")
else:
    print("countdown_thread已结束")


print("MAIN_thread(countdown)运行结束")
